#ifndef INTERSECTIONMATCHER_H_
#define INTERSECTIONMATCHER_H_

#include "map/RoadSegment.h"

#include "util/Matcher.h"
#include <string>

using namespace std;
/*
 * Matcher que utiliza el metodo getId() para comparar un elemento con un id.
 */
class IntersectionMatcher: public Matcher<RoadSegment> {
public:

	/* Constructor. Recibe el rango que se va a usar de overlapping */
	IntersectionMatcher(Intersection* intersection) {
		this->intersection = intersection;
	}

	/* Destructor. */
	virtual ~IntersectionMatcher() { }

	/*
	 * Metodo para comparar. Devuelve true en caso que el id del elemento
	 * a comparar sea igual al id seteado anteriormente.
	 */
	virtual bool matches(RoadSegment* dataToCompare) {
		return dataToCompare->getOrigin() == this->intersection || dataToCompare->getDestination() == this->intersection;
	}

private:
	Intersection* intersection;
};

#endif /* INTERSECTIONMATCHER_H_*/
